﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KeyCore.Framework.Model
{
    public class Osoba
    {
        public string OsobaImie { get; set; }
        public string OsobaDrugieImie { get; set; }
        public string OsobaNazwisko { get; set; }
        public string OsobaNazwiskoPanienskie { get; set; }
        public Rodzice OsobaRodzice { get; set; }
        public DaneOsobowe DaneOsobowe { get; set; }
    }

    public class DaneOsobowe
    {
        public int DaneOsoboweId { get; set; }
        public int OsobaPESEL { get; set; }
        public List<DokumentTozsamosci> OsobaDokumentyTozsamosci { get; set; }
        public List<Adres> OsobaAdresy { get; set; }
        public List<Telefon> OsobaTelefony { get; set; }
        public List<KontoBankowe> OsobakontaBankowe { get; set; }
    }

    public class KontoBankowe
    {
        public int KontoBankoweId { get; set; }
        public int KontoBankoweNumer { get; set; }
        public NazwaBanku NazwaBanku { get; set; }
    }

    public class NazwaBanku
    {
        
    }

    public class Rodzice
    {
        public int RodziceId { get; set; }
        public string RodziceNazwiskoOjca { get; set; }
        public string RodziceImieOjca { get; set; }
        public string RodziceImieMatki { get; set; }
        public string RodziceNazwiskoPanienskieMatki { get; set; }
    }

    public class DokumentTozsamosci
    {
        public int DokumentTozsamosciId { get; set; }
        public TypDokumentu DokumentTozsamosciTypDokumentu { get; set; }
        public string DokumentTozsamosciSeria { get; set; }
        public string DokumentTozsamosciNumer { get; set; }
        public string DokumentTozsamosciOrganWydajacy { get; set; }
        public DateTime DokumentTozsamosciDataWydania { get; set; }
        public DateTime DokumentTozsamosciDataWaznosci { get; set; }
    }

    public class TypDokumentu
    {
        public int TypDokumentuId { get; set; }
        public string TypDokumentuNazwa { get; set; }
    }


    public class Adres
    {
        public int AdresId { get; set; }
        public AdresTyp AdresTyp { get; set; }
        public string AdresUlica { get; set; }
        public string AdresNumerDomu { get; set; }
        public string AdresNumerLokalu { get; set; }
        public Miejscowosc AdresPoczta { get; set; }
        public Miejscowosc AdresMiejscowosc { get; set; }
        public Wojewodztwo AdresWojewodztwo { get; set; }
        public Kraj AdresKraj { get; set; }
    }

    public class AdresTyp
    {
        public int AdresuTypId { get; set; }
        public string AdresTypNazwa { get; set; }
    }

    public class Miejscowosc
    {
        public int MiejscowoscId { get; set; }
        public int MiejscowoscNazwa { get; set; }
    }

    public class Wojewodztwo
    {
        public int WojewodztwoId { get; set; }
        public string WojewodztwoNazwa { get; set; }
    }

    public class Kraj
    {
        public int KrajId { get; set; }
        public string KrajNazwa { get; set; }
    }


    public class Telefon
    {
        public int TelefonId { get; set; }
        public TelefonTyp TelefonTyp { get; set; }
        public TelefonPrefix TelefonPrefix { get; set; }
        public string NumerTelefonu { get; set; }
    }

    public class TelefonTyp
    {
        public int TelefonTypId { get; set; }
        public string TelefonTypNazwa { get; set; }
    }

    public class TelefonPrefix
    {
        public int TelefonPrefixId { get; set; }
        public int TelefonPrefixNumer { get; set; }
        public Kraj TelefonPrefixKraj { get; set; }
    }
}